package Object;

/**
 * 测试重写Object的toString方法与equals方法
 */
public class Demo {
    public static void main(String[] args) {

        Point p = new Point(1,2);
        /*
         *  String toString（）方法是Object定义的方法
         *   该方法的作用是将当前对象转换为一个字符串。Object的实现中该方法返回的
         *   是这个对象的地址信息，格式为：类名@地址
         */
        String str = p.toString();
        System.out.println(str);

        //向控制台输出P对象
        /*
         *  System.out.println(Object o)
         *   向控制台输出一个对象时，该方法会输出该对象toString方法返回的字符串
         */
        System.out.println(p);

        /*  在进行字符串连续时，会将非字符串的对象内容转换为字符串，此时回调用起toString
            方法将其转化为字符串
         */
        String line = "对象内容："+p;
        System.out.println(line);

        /*
           Object 定义的另一个常被子类重写的方法：equals
           该方法的作用是判断两个同类型的实例之间的内容是否相同。
         */
        Point p2 = new Point(1,2);
        /*
             ==为值比较，比较两个变量的值是否相同
             对于应用类型变量而言，保存的是地址，因此==可以理解为比较两个对象的地址是否相同
             ，这就意味着比较的是它们是否为同一个对象。
         */
        System.out.println(p==p2);
        /*
            equals方法
         */
        System.out.println(p.equals(p2));

    }
}
